package agenceVoyageVirtuel.client.rpc;

import java.util.List;

import agenceVoyageVirtuel.client.beans.AdresseData;
import agenceVoyageVirtuel.client.beans.ApparenceData;
import agenceVoyageVirtuel.client.beans.AvatarData;
import agenceVoyageVirtuel.client.beans.CarteData;
import agenceVoyageVirtuel.client.beans.ClientData;
import agenceVoyageVirtuel.client.beans.CommandeData;
import agenceVoyageVirtuel.client.beans.EpoqueData;
import agenceVoyageVirtuel.client.beans.MetierData;
import agenceVoyageVirtuel.client.beans.OptionData;
import agenceVoyageVirtuel.client.beans.PackData;
import agenceVoyageVirtuel.client.beans.SexeData;
import agenceVoyageVirtuel.client.beans.SouvenirData;
import agenceVoyageVirtuel.client.beans.VoyageData;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * The async counterpart of <code>> callbackRpcService</code>> callback.
 */
public interface RpcCallServiceAsync {
	public void getPacks(AsyncCallback<List<PackData>> callback);
	public void getApparences(AsyncCallback<List<ApparenceData>> callback);
	public void getHistoriqueCommandes(int idClient, AsyncCallback<List<CommandeData>> callback);
	public void getEpoques(AsyncCallback<List<EpoqueData>> callback);
	public void getMetiers(AsyncCallback<List<MetierData>> callback);
	public void getOptions(AsyncCallback<List<OptionData>> callback );
	public void getSexes(AsyncCallback<List<SexeData>> callback);
	public void getSouvenirs(AsyncCallback<List<SouvenirData>> callback);
	public void getVoyages(AsyncCallback<List<VoyageData>> callback);
	public void isAuthentifie(String email, String password, AsyncCallback<ClientData> callback);
	public void getAdressesUtilisees(ClientData clientCourant, AsyncCallback<List<AdresseData>> callback);
	public void getCartesUtilisees(ClientData clientCourant, AsyncCallback<List<CarteData>> callback);
	public void getAvatarsUtilisees(ClientData clientCourant, AsyncCallback<List<AvatarData>> callback);
	public void commander(CommandeData commandeEnCours, AsyncCallback<Void> callback);
	public void creerClient(ClientData client, AsyncCallback<Void> callback);
	public void creerCarte(CarteData carte, AsyncCallback<Void> callback);
	public void creerAdresse(AdresseData adresse, AsyncCallback<Void> callback);
	public void creerAvatar(AvatarData avatar, AsyncCallback<Void> callback);
	public void creerApparence(String nouvelleApparence, AsyncCallback<Void> callback);
	public void creerEpoque(String nouvelleEpoque, AsyncCallback<Void> callback);
	public void creerSouvenir(String nouveauSouvenir, String descriptionSouvenir, int tarifSouvenir, AsyncCallback<Void> callback);
	public void creerOption(String nouvelleOption, int tarifOption, AsyncCallback<Void> callback);
	public void creerSexe(String nouveauSexe, AsyncCallback<Void> callback);
	public void creerVoyage(String nouveauVoyage, boolean reel, int tarifVoyage, String nomImage, AsyncCallback<Void> callback);
}
